Configuring computer software applications can be a complicated task for end-users to perform, and for developers of software applications to accurately foresee and accommodate. For example, there are usually several choices to be made in configuring the software (or “driver”) that controls the operations of a mouse or a printer connected to a personal computer. Therefore, software configuration programs such as wizards have been provided for configuring software applications. A wizard may present sequential screens to the user for making various inputs, and the software application may thereafter be configured using the user inputs.
In larger software systems, such as those that control enterprise-wide operations, it may be desirable or necessary to allow extensive configuration. The configuration is usually created by a system administrator of the organization that is to use the system (the organization is the “customer” of the software). Different customers may have very different needs and circumstances that require significantly different configurations of the software. The extensive configuration capability adds complexity to the development and testing of the software. Moreover, the customers sometime run into problems when selecting a configuration that has not been sufficiently tested, because such a configuration may be deficient or unsuccessful.
It may therefore be advantageous to provide guidance regarding permissible configurations, for example through a wizard that is used in configuring the software. However, due to unforeseen circumstances, a configuration that appears to be good or safe may nevertheless be unsuccessful, resulting in the software not working properly with the chosen configuration. When this condition occurs, there is a need to find a successful configuration. Moreover, there is a need to modify the provided guidance so that the unsuccessful configuration, and possibly others as well, are thereafter prevented. Existing systems may be deficient in this respect. Also, existing systems may not be able to derive useful information from various customers' experiences with successful configurations.